package P081_SortList;

import org.junit.Test;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.TreeSet;
import java.util.Vector;
import java.util.stream.Collectors;

/**
 * @Description :非稳定排序推荐使用List
 *
 **/
public class UseSortList {

    /**
     * TreeSet 适用元素不变的稳定排序
     * Integer和String对象都可以进行默认的TreeSet排序，
     * 而自定义类的对象是不可以的，自己定义的类必须实现Comparable接口，并且覆写相应的compareTo()函数，才可以正常使用
     */
    @Test
    public void test(){
        TreeSet<Person> set = new TreeSet<>();
        set.add(new Person(180));
        set.add(new Person(175));
        set.first().setHeight(185);
        set=new TreeSet<>(new ArrayList<>(set));
        for(Person p:set){
            System.out.println("身高： "+p.getHeight());
        }
    }

    /**
     * 适用
     */
    @Test
    public void test1(){

        List<Person> list = new ArrayList<>();
        list.add(new Person(180));
        list.add(new Person(175));
        Collections.sort(list);
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i).getHeight());
        }
    }



    static class Person implements  Comparable<Person>{
        private int height;
        public Person(int _age){
            height= _age;
        }

        @Override
        public int compareTo(Person person) {
            return height-person.height;
        }

        public int getHeight() {
            return height;
        }

        public void setHeight(int height) {
            this.height = height;
        }
    }
}
